	SUBROUTINE STNTBI ( N, LUN, NUMB, NEMO, CELSQ )

C$$$  SUBPROGRAM DOCUMENTATION BLOCK
C
C SUBPROGRAM:    STNTBI
C   PRGMMR: ATOR            ORG: NP12       DATE: 2009-03-23
C
C ABSTRACT: THIS SUBROUTINE STORES A NEW ENTRY WITHIN INTERNAL BUFR
C   TABLE B OR D, DEPENDING ON THE VALUE OF NUMB.
C
C PROGRAM HISTORY LOG:
C 2009-03-23  J. ATOR    -- ORIGINAL AUTHOR
C 2014-12-10  J. ATOR    -- USE MODULES INSTEAD OF COMMON BLOCKS
C
C USAGE:    CALL STNTBI ( N, LUN, NUMB, NEMO, CELSQ )
C   INPUT ARGUMENT LIST:
C       N      - INTEGER: STORAGE INDEX INTO INTERNAL TABLE B OR D 
C     LUN      - INTEGER: I/O STREAM INDEX INTO INTERNAL TABLE B OR D
C    NUMB      - CHARACTER*6: FXY NUMBER FOR NEW TABLE B OR D ENTRY
C                (IN FORMAT FXXYYY)
C    NEMO      - CHARACTER*8: MNEMONIC CORRESPONDING TO NUMB
C   CELSQ      - CHARACTER*55: ELEMENT OR SEQUENCE DESCRIPTION
C                CORRESPONDING TO NUMB
C
C REMARKS:
C    THIS ROUTINE CALLS:        IFXY     NENUBD
C    THIS ROUTINE IS CALLED BY: RDUSDX   STSEQ
C                               Not normally called by application
C                               programs.
C
C ATTRIBUTES:
C   LANGUAGE: FORTRAN 77
C   MACHINE:  PORTABLE TO ALL PLATFORMS
C
C$$$

	USE MODA_TABABD

	INCLUDE 'bufrlib.prm'

	CHARACTER*(*) NUMB, NEMO, CELSQ

C-----------------------------------------------------------------------
C-----------------------------------------------------------------------

	CALL NENUBD ( NEMO, NUMB, LUN )

	IF ( NUMB(1:1) .EQ. '0') THEN
            IDNB(N,LUN) = IFXY(NUMB)
            TABB(N,LUN)( 1: 6) = NUMB(1:6)
            TABB(N,LUN)( 7:14) = NEMO(1:8)
            TABB(N,LUN)(16:70) = CELSQ(1:55)
            NTBB(LUN) = N
	ELSE IF ( NUMB(1:1) .EQ. '3') THEN
            IDND(N,LUN) = IFXY(NUMB)
            TABD(N,LUN)( 1: 6) = NUMB(1:6)
            TABD(N,LUN)( 7:14) = NEMO(1:8)
            TABD(N,LUN)(16:70) = CELSQ(1:55)
            NTBD(LUN) = N
        ENDIF

	RETURN
	END
